package com.ruoyi.gwc.service;

import java.util.List;

import com.ruoyi.gwc.domain.TApprovalApply;
import com.ruoyi.gwc.domain.TDispatchVehicles;
import com.ruoyi.gwc.domain.TVehicleApplication;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 用车申请Service接口
 * 
 * @author wp
 * @date 2024-11-18
 */
public interface ITVehicleApplicationService extends IService<TVehicleApplication>
{
    /**
     * 查询用车申请
     * 
     * @param applyId 用车申请主键
     * @return 用车申请
     */
    public TVehicleApplication selectTVehicleApplicationByApplyId(Long applyId);

    /**
     * 查询用车申请列表
     * 
     * @param tVehicleApplication 用车申请
     * @return 用车申请集合
     */
    public List<TVehicleApplication> selectTVehicleApplicationList(TVehicleApplication tVehicleApplication);
    public List<TVehicleApplication> selectTVehicleApplicationWithAllList(TVehicleApplication tVehicleApplication);


    public List<TVehicleApplication> getVehicleApplicationList(Long vehicleId);

    public List<TVehicleApplication> getApprovalVehicleList(TApprovalApply approvalApply);
    public List<TVehicleApplication> getScheduledVehicleList(TDispatchVehicles dispatchVehicles);


    /**
     * 新增用车申请
     * 
     * @param tVehicleApplication 用车申请
     * @return 结果
     */
    public int insertTVehicleApplication(TVehicleApplication tVehicleApplication);

    /**
     * 修改用车申请
     * 
     * @param tVehicleApplication 用车申请
     * @return 结果
     */
    public int updateTVehicleApplication(TVehicleApplication tVehicleApplication);

    /**
     * 批量删除用车申请
     * 
     * @param applyIds 需要删除的用车申请主键集合
     * @return 结果
     */
    public int deleteTVehicleApplicationByApplyIds(Long[] applyIds);

    /**
     * 删除用车申请信息
     * 
     * @param applyId 用车申请主键
     * @return 结果
     */
    public int deleteTVehicleApplicationByApplyId(Long applyId);
}
